// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: 'cloud1-2ga6780q302b7f4a'
}) // 使用当前云环境
const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
  const { OPENID } = cloud.getWXContext()
  
  try {
    // 验证管理员身份
    const result = await cloud.callFunction({
      name: 'checkAdminAuth',
      data: {
        adminId: event.adminId || '',
        token: event.token || ''
      }
    })
    
    const { code, data } = result.result
    
    if (code !== 0 || !data) {
      return {
        code: 401,
        data: null,
        message: '未授权访问'
      }
    }
    
    // 构建查询条件
    let condition = {}
    
    // 根据状态筛选
    if (event.status === 'blocked') {
      condition.status = 'blocked'
    }
    
    // 关键词搜索
    if (event.keyword) {
      const keyword = event.keyword
      condition = _.or([
        {
          nickName: db.RegExp({
            regexp: keyword,
            options: 'i', // 不区分大小写
          })
        },
        {
          _id: db.RegExp({
            regexp: keyword,
            options: 'i',
          })
        }
      ])
    }
    
    // 获取用户列表
    const { data: users } = await db.collection('users')
      .where(condition)
      .orderBy('createTime', 'desc')
      .get()
    
    return {
      code: 0,
      data: users,
      message: '获取用户列表成功'
    }
  } catch (err) {
    return {
      code: 500,
      data: null,
      message: '获取用户列表失败: ' + err.message
    }
  }
} 